<!doctype html>

<html>
<head>
  <link rel="shortcut icon" href="static/images/favicon.ico" type="image/x-icon">
  <title>jsonprettyprinter.js (Closure Library API Documentation - JavaScript)</title>
  <link rel="stylesheet" href="static/css/base.css">
  <link rel="stylesheet" href="static/css/doc.css">
  <link rel="stylesheet" href="static/css/sidetree.css">
  <link rel="stylesheet" href="static/css/prettify.css">

  <script>
     var _staticFilePath = "static/";
     var _typeTreeName = "goog";
     var _fileTreeName = "Source";
  </script>

  <script src="static/js/doc.js">
  </script>


  <meta charset="utf8">
</head>

<body onload="grokdoc.onLoad();">

<div id="header">
  <div class="g-section g-tpl-50-50 g-split">
    <div class="g-unit g-first">
      <a id="logo" href="index.html">Closure Library API Documentation</a>
    </div>

    <div class="g-unit">
      <div class="g-c">
        <strong>Go to class or file:</strong>
        <input type="text" id="ac">
      </div>
    </div>
  </div>
</div>

<div class="clear"></div>

<h2><a href="local_closure_goog_format_jsonprettyprinter.js.html">jsonprettyprinter.js</a></h2>

<pre class="prettyprint lang-js">
<a name="line1"></a>// Copyright 2010 The Closure Library Authors. All Rights Reserved.
<a name="line2"></a>//
<a name="line3"></a>// Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
<a name="line4"></a>// you may not use this file except in compliance with the License.
<a name="line5"></a>// You may obtain a copy of the License at
<a name="line6"></a>//
<a name="line7"></a>//      http://www.apache.org/licenses/LICENSE-2.0
<a name="line8"></a>//
<a name="line9"></a>// Unless required by applicable law or agreed to in writing, software
<a name="line10"></a>// distributed under the License is distributed on an &quot;AS-IS&quot; BASIS,
<a name="line11"></a>// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
<a name="line12"></a>// See the License for the specific language governing permissions and
<a name="line13"></a>// limitations under the License.
<a name="line14"></a>
<a name="line15"></a>/**
<a name="line16"></a> * @fileoverview Creates a string of a JSON object, properly indented for
<a name="line17"></a> * display.
<a name="line18"></a> *
<a name="line19"></a> */
<a name="line20"></a>
<a name="line21"></a>goog.provide(&#39;goog.format.JsonPrettyPrinter&#39;);
<a name="line22"></a>goog.provide(&#39;goog.format.JsonPrettyPrinter.HtmlDelimiters&#39;);
<a name="line23"></a>goog.provide(&#39;goog.format.JsonPrettyPrinter.TextDelimiters&#39;);
<a name="line24"></a>
<a name="line25"></a>goog.require(&#39;goog.json&#39;);
<a name="line26"></a>goog.require(&#39;goog.json.Serializer&#39;);
<a name="line27"></a>goog.require(&#39;goog.string&#39;);
<a name="line28"></a>goog.require(&#39;goog.string.StringBuffer&#39;);
<a name="line29"></a>goog.require(&#39;goog.string.format&#39;);
<a name="line30"></a>
<a name="line31"></a>
<a name="line32"></a>
<a name="line33"></a>/**
<a name="line34"></a> * Formats a JSON object as a string, properly indented for display.  Supports
<a name="line35"></a> * displaying the string as text or html.  Users can also specify their own
<a name="line36"></a> * set of delimiters for different environments.  For example, the JSON object:
<a name="line37"></a> *
<a name="line38"></a> * &lt;code&gt;{&quot;a&quot;: 1, &quot;b&quot;: {&quot;c&quot;: null, &quot;d&quot;: true, &quot;e&quot;: [1, 2]}}&lt;/code&gt;
<a name="line39"></a> *
<a name="line40"></a> * Will be displayed like this:
<a name="line41"></a> *
<a name="line42"></a> * &lt;code&gt;{
<a name="line43"></a> *   &quot;a&quot;: 1,
<a name="line44"></a> *   &quot;b&quot;: {
<a name="line45"></a> *     &quot;c&quot;: null,
<a name="line46"></a> *     &quot;d&quot;: true,
<a name="line47"></a> *     &quot;e&quot;: [
<a name="line48"></a> *       1,
<a name="line49"></a> *       2
<a name="line50"></a> *     ]
<a name="line51"></a> *   }
<a name="line52"></a> * }&lt;/code&gt;
<a name="line53"></a> * @param {goog.format.JsonPrettyPrinter.TextDelimiters} delimiters Container
<a name="line54"></a> *     for the various strings to use to delimit objects, arrays, newlines, and
<a name="line55"></a> *     other pieces of the output.
<a name="line56"></a> * @constructor
<a name="line57"></a> */
<a name="line58"></a>goog.format.JsonPrettyPrinter = function(delimiters) {
<a name="line59"></a>
<a name="line60"></a>  /**
<a name="line61"></a>   * The set of characters to use as delimiters.
<a name="line62"></a>   * @type {goog.format.JsonPrettyPrinter.TextDelimiters}
<a name="line63"></a>   * @private
<a name="line64"></a>   */
<a name="line65"></a>  this.delimiters_ = delimiters ||
<a name="line66"></a>      new goog.format.JsonPrettyPrinter.TextDelimiters();
<a name="line67"></a>
<a name="line68"></a>  /**
<a name="line69"></a>   * Used to serialize property names and values.
<a name="line70"></a>   * @type {goog.json.Serializer}
<a name="line71"></a>   * @private
<a name="line72"></a>   */
<a name="line73"></a>  this.jsonSerializer_ = new goog.json.Serializer();
<a name="line74"></a>};
<a name="line75"></a>
<a name="line76"></a>
<a name="line77"></a>/**
<a name="line78"></a> * Formats a JSON object as a string, properly indented for display.
<a name="line79"></a> * @param {*} json The object to pretty print. It could be a JSON object, a
<a name="line80"></a> *     string representing a JSON object, or any other type.
<a name="line81"></a> * @return {string} Returns a string of the JSON object, properly indented for
<a name="line82"></a> *     display.
<a name="line83"></a> */
<a name="line84"></a>goog.format.JsonPrettyPrinter.prototype.format = function(json) {
<a name="line85"></a>  // If input is undefined, null, or empty, return an empty string.
<a name="line86"></a>  if (!goog.isDefAndNotNull(json)) {
<a name="line87"></a>    return &#39;&#39;;
<a name="line88"></a>  }
<a name="line89"></a>  if (goog.isString(json)) {
<a name="line90"></a>    if (goog.string.isEmpty(json)) {
<a name="line91"></a>      return &#39;&#39;;
<a name="line92"></a>    }
<a name="line93"></a>    // Try to coerce a string into a JSON object.
<a name="line94"></a>    json = goog.json.parse(json);
<a name="line95"></a>  }
<a name="line96"></a>  var outputBuffer = new goog.string.StringBuffer();
<a name="line97"></a>  this.printObject_(json, outputBuffer, 0);
<a name="line98"></a>  return outputBuffer.toString();
<a name="line99"></a>};
<a name="line100"></a>
<a name="line101"></a>
<a name="line102"></a>/**
<a name="line103"></a> * Formats a property value based on the type of the propery.
<a name="line104"></a> * @param {*} val The object to format.
<a name="line105"></a> * @param {goog.string.StringBuffer} outputBuffer The buffer to write the
<a name="line106"></a> *     response to.
<a name="line107"></a> * @param {number} indent The number of spaces to indent each line of the
<a name="line108"></a> *     output.
<a name="line109"></a> * @private
<a name="line110"></a> */
<a name="line111"></a>goog.format.JsonPrettyPrinter.prototype.printObject_ = function(val,
<a name="line112"></a>    outputBuffer, indent) {
<a name="line113"></a>  var typeOf = goog.typeOf(val);
<a name="line114"></a>  switch (typeOf) {
<a name="line115"></a>    case &#39;null&#39;:
<a name="line116"></a>    case &#39;boolean&#39;:
<a name="line117"></a>    case &#39;number&#39;:
<a name="line118"></a>    case &#39;string&#39;:
<a name="line119"></a>      // &quot;null&quot;, &quot;boolean&quot;, &quot;number&quot; and &quot;string&quot; properties are printed
<a name="line120"></a>      // directly to the output.
<a name="line121"></a>      this.printValue_(
<a name="line122"></a>          /** @type {null|string|boolean|number} */ (val),
<a name="line123"></a>          typeOf, outputBuffer);
<a name="line124"></a>      break;
<a name="line125"></a>    case &#39;array&#39;:
<a name="line126"></a>      // Example of how an array looks when formatted
<a name="line127"></a>      // (using the default delimiters):
<a name="line128"></a>      // [
<a name="line129"></a>      //   1,
<a name="line130"></a>      //   2,
<a name="line131"></a>      //   3
<a name="line132"></a>      // ]
<a name="line133"></a>      outputBuffer.append(this.delimiters_.arrayStart);
<a name="line134"></a>      var i = 0;
<a name="line135"></a>      // Iterate through the array and format each element.
<a name="line136"></a>      for (i = 0; i &lt; val.length; i++) {
<a name="line137"></a>        if (i &gt; 0) {
<a name="line138"></a>          // There are multiple elements, add a comma to separate them.
<a name="line139"></a>          outputBuffer.append(this.delimiters_.propertySeparator);
<a name="line140"></a>        }
<a name="line141"></a>        outputBuffer.append(this.delimiters_.lineBreak);
<a name="line142"></a>        this.printSpaces_(indent + this.delimiters_.indent, outputBuffer);
<a name="line143"></a>        this.printObject_(val[i], outputBuffer,
<a name="line144"></a>            indent + this.delimiters_.indent);
<a name="line145"></a>      }
<a name="line146"></a>      // If there are no properties in this object, don&#39;t put a line break
<a name="line147"></a>      // between the beginning &quot;[&quot; and ending &quot;]&quot;, so the output of an empty
<a name="line148"></a>      // array looks like &lt;code&gt;[]&lt;/code&gt;.
<a name="line149"></a>      if (i &gt; 0) {
<a name="line150"></a>        outputBuffer.append(this.delimiters_.lineBreak);
<a name="line151"></a>        this.printSpaces_(indent, outputBuffer);
<a name="line152"></a>      }
<a name="line153"></a>      outputBuffer.append(this.delimiters_.arrayEnd);
<a name="line154"></a>      break;
<a name="line155"></a>    case &#39;object&#39;:
<a name="line156"></a>      // Example of how an object looks when formatted
<a name="line157"></a>      // (using the default delimiters):
<a name="line158"></a>      // {
<a name="line159"></a>      //   &quot;a&quot;: 1,
<a name="line160"></a>      //   &quot;b&quot;: 2,
<a name="line161"></a>      //   &quot;c&quot;: &quot;3&quot;
<a name="line162"></a>      // }
<a name="line163"></a>      outputBuffer.append(this.delimiters_.objectStart);
<a name="line164"></a>      var propertyCount = 0;
<a name="line165"></a>      // Iterate through the object and display each property.
<a name="line166"></a>      for (var name in val) {
<a name="line167"></a>        if (!val.hasOwnProperty(name)) {
<a name="line168"></a>          continue;
<a name="line169"></a>        }
<a name="line170"></a>        if (propertyCount &gt; 0) {
<a name="line171"></a>          // There are multiple properties, add a comma to separate them.
<a name="line172"></a>          outputBuffer.append(this.delimiters_.propertySeparator);
<a name="line173"></a>        }
<a name="line174"></a>        outputBuffer.append(this.delimiters_.lineBreak);
<a name="line175"></a>        this.printSpaces_(indent + this.delimiters_.indent, outputBuffer);
<a name="line176"></a>        this.printName_(name, outputBuffer);
<a name="line177"></a>        outputBuffer.append(this.delimiters_.nameValueSeparator,
<a name="line178"></a>            this.delimiters_.space);
<a name="line179"></a>        this.printObject_(val[name], outputBuffer,
<a name="line180"></a>            indent + this.delimiters_.indent);
<a name="line181"></a>        propertyCount++;
<a name="line182"></a>      }
<a name="line183"></a>      // If there are no properties in this object, don&#39;t put a line break
<a name="line184"></a>      // between the beginning &quot;{&quot; and ending &quot;}&quot;, so the output of an empty
<a name="line185"></a>      // object looks like &lt;code&gt;{}&lt;/code&gt;.
<a name="line186"></a>      if (propertyCount &gt; 0) {
<a name="line187"></a>        outputBuffer.append(this.delimiters_.lineBreak);
<a name="line188"></a>        this.printSpaces_(indent, outputBuffer);
<a name="line189"></a>      }
<a name="line190"></a>      outputBuffer.append(this.delimiters_.objectEnd);
<a name="line191"></a>      break;
<a name="line192"></a>    // Other types, such as &quot;function&quot;, aren&#39;t expected in JSON, and their
<a name="line193"></a>    // behavior is undefined.  In these cases, just print an empty string to the
<a name="line194"></a>    // output buffer.  This allows the pretty printer to continue while still
<a name="line195"></a>    // outputing well-formed JSON.
<a name="line196"></a>    default:
<a name="line197"></a>      this.printValue_(&#39;&#39;, &#39;unknown&#39;, outputBuffer);
<a name="line198"></a>  }
<a name="line199"></a>};
<a name="line200"></a>
<a name="line201"></a>
<a name="line202"></a>/**
<a name="line203"></a> * Prints a property name to the output.
<a name="line204"></a> * @param {string} name The property name.
<a name="line205"></a> * @param {goog.string.StringBuffer} outputBuffer The buffer to write the
<a name="line206"></a> *     response to.
<a name="line207"></a> * @private
<a name="line208"></a> */
<a name="line209"></a>goog.format.JsonPrettyPrinter.prototype.printName_ = function(name,
<a name="line210"></a>    outputBuffer) {
<a name="line211"></a>  outputBuffer.append(this.delimiters_.preName,
<a name="line212"></a>      this.jsonSerializer_.serialize(name), this.delimiters_.postName);
<a name="line213"></a>};
<a name="line214"></a>
<a name="line215"></a>
<a name="line216"></a>/**
<a name="line217"></a> * Prints a property name to the output.
<a name="line218"></a> * @param {string|boolean|number|null} val The property value.
<a name="line219"></a> * @param {string} typeOf The type of the value.  Used to customize
<a name="line220"></a> *     value-specific css in the display.  This allows clients to distinguish
<a name="line221"></a> *     between different types in css.  For example, the client may define two
<a name="line222"></a> *     classes: &quot;goog-jsonprettyprinter-propertyvalue-string&quot; and
<a name="line223"></a> *     &quot;goog-jsonprettyprinter-propertyvalue-number&quot; to assign a different color
<a name="line224"></a> *     to string and number values.
<a name="line225"></a> * @param {goog.string.StringBuffer} outputBuffer The buffer to write the
<a name="line226"></a> *     response to.
<a name="line227"></a> * @private
<a name="line228"></a> */
<a name="line229"></a>goog.format.JsonPrettyPrinter.prototype.printValue_ = function(val,
<a name="line230"></a>    typeOf, outputBuffer) {
<a name="line231"></a>  outputBuffer.append(goog.string.format(this.delimiters_.preValue, typeOf),
<a name="line232"></a>      this.jsonSerializer_.serialize(val),
<a name="line233"></a>      goog.string.format(this.delimiters_.postValue, typeOf));
<a name="line234"></a>};
<a name="line235"></a>
<a name="line236"></a>
<a name="line237"></a>/**
<a name="line238"></a> * Print a number of space characters to the output.
<a name="line239"></a> * @param {number} indent The number of spaces to indent the line.
<a name="line240"></a> * @param {goog.string.StringBuffer} outputBuffer The buffer to write the
<a name="line241"></a> *     response to.
<a name="line242"></a> * @private
<a name="line243"></a> */
<a name="line244"></a>goog.format.JsonPrettyPrinter.prototype.printSpaces_ = function(indent,
<a name="line245"></a>    outputBuffer) {
<a name="line246"></a>  outputBuffer.append(goog.string.repeat(this.delimiters_.space, indent));
<a name="line247"></a>};
<a name="line248"></a>
<a name="line249"></a>
<a name="line250"></a>
<a name="line251"></a>/**
<a name="line252"></a> * A container for the delimiting characters used to display the JSON string
<a name="line253"></a> * to a text display.  Each delimiter is a publicly accessible property of
<a name="line254"></a> * the object, which makes it easy to tweak delimiters to specific environments.
<a name="line255"></a> * @constructor
<a name="line256"></a> */
<a name="line257"></a>goog.format.JsonPrettyPrinter.TextDelimiters = function() {
<a name="line258"></a>};
<a name="line259"></a>
<a name="line260"></a>
<a name="line261"></a>/**
<a name="line262"></a> * Represents a space character in the output.  Used to indent properties a
<a name="line263"></a> * certain number of spaces, and to separate property names from property
<a name="line264"></a> * values.
<a name="line265"></a> * @type {string}
<a name="line266"></a> */
<a name="line267"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.space = &#39; &#39;;
<a name="line268"></a>
<a name="line269"></a>
<a name="line270"></a>/**
<a name="line271"></a> * Represents a newline character in the output.  Used to begin a new line.
<a name="line272"></a> * @type {string}
<a name="line273"></a> */
<a name="line274"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.lineBreak = &#39;\n&#39;;
<a name="line275"></a>
<a name="line276"></a>
<a name="line277"></a>/**
<a name="line278"></a> * Represents the start of an object in the output.
<a name="line279"></a> * @type {string}
<a name="line280"></a> */
<a name="line281"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.objectStart = &#39;{&#39;;
<a name="line282"></a>
<a name="line283"></a>
<a name="line284"></a>/**
<a name="line285"></a> * Represents the end of an object in the output.
<a name="line286"></a> * @type {string}
<a name="line287"></a> */
<a name="line288"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.objectEnd = &#39;}&#39;;
<a name="line289"></a>
<a name="line290"></a>
<a name="line291"></a>/**
<a name="line292"></a> * Represents the start of an array in the output.
<a name="line293"></a> * @type {string}
<a name="line294"></a> */
<a name="line295"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.arrayStart = &#39;[&#39;;
<a name="line296"></a>
<a name="line297"></a>
<a name="line298"></a>/**
<a name="line299"></a> * Represents the end of an array in the output.
<a name="line300"></a> * @type {string}
<a name="line301"></a> */
<a name="line302"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.arrayEnd = &#39;]&#39;;
<a name="line303"></a>
<a name="line304"></a>
<a name="line305"></a>/**
<a name="line306"></a> * Represents the string used to separate properties in the output.
<a name="line307"></a> * @type {string}
<a name="line308"></a> */
<a name="line309"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.propertySeparator = &#39;,&#39;;
<a name="line310"></a>
<a name="line311"></a>
<a name="line312"></a>/**
<a name="line313"></a> * Represents the string used to separate property names from property values in
<a name="line314"></a> * the output.
<a name="line315"></a> * @type {string}
<a name="line316"></a> */
<a name="line317"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.nameValueSeparator = &#39;:&#39;;
<a name="line318"></a>
<a name="line319"></a>
<a name="line320"></a>/**
<a name="line321"></a> * A string that&#39;s placed before a property name in the output.  Useful for
<a name="line322"></a> * wrapping a property name in an html tag.
<a name="line323"></a> * @type {string}
<a name="line324"></a> */
<a name="line325"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.preName = &#39;&#39;;
<a name="line326"></a>
<a name="line327"></a>
<a name="line328"></a>/**
<a name="line329"></a> * A string that&#39;s placed after a property name in the output.  Useful for
<a name="line330"></a> * wrapping a property name in an html tag.
<a name="line331"></a> * @type {string}
<a name="line332"></a> */
<a name="line333"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.postName = &#39;&#39;;
<a name="line334"></a>
<a name="line335"></a>
<a name="line336"></a>/**
<a name="line337"></a> * A string that&#39;s placed before a property value in the output.  Useful for
<a name="line338"></a> * wrapping a property value in an html tag.
<a name="line339"></a> * @type {string}
<a name="line340"></a> */
<a name="line341"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.preValue = &#39;&#39;;
<a name="line342"></a>
<a name="line343"></a>
<a name="line344"></a>/**
<a name="line345"></a> * A string that&#39;s placed after a property value in the output.  Useful for
<a name="line346"></a> * wrapping a property value in an html tag.
<a name="line347"></a> * @type {string}
<a name="line348"></a> */
<a name="line349"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.postValue = &#39;&#39;;
<a name="line350"></a>
<a name="line351"></a>
<a name="line352"></a>/**
<a name="line353"></a> * Represents the number of spaces to indent each sub-property of the JSON.
<a name="line354"></a> * @type {number}
<a name="line355"></a> */
<a name="line356"></a>goog.format.JsonPrettyPrinter.TextDelimiters.prototype.indent = 2;
<a name="line357"></a>
<a name="line358"></a>
<a name="line359"></a>
<a name="line360"></a>/**
<a name="line361"></a> * A container for the delimiting characters used to display the JSON string
<a name="line362"></a> * to an HTML &lt;code&gt;&amp;lt;pre&amp;gt;&lt;/code&gt; or &lt;code&gt;&amp;lt;code&amp;gt;&lt;/code&gt; element.
<a name="line363"></a> * @constructor
<a name="line364"></a> * @extends {goog.format.JsonPrettyPrinter.TextDelimiters}
<a name="line365"></a> * @final
<a name="line366"></a> */
<a name="line367"></a>goog.format.JsonPrettyPrinter.HtmlDelimiters = function() {
<a name="line368"></a>  goog.format.JsonPrettyPrinter.TextDelimiters.call(this);
<a name="line369"></a>};
<a name="line370"></a>goog.inherits(goog.format.JsonPrettyPrinter.HtmlDelimiters,
<a name="line371"></a>    goog.format.JsonPrettyPrinter.TextDelimiters);
<a name="line372"></a>
<a name="line373"></a>
<a name="line374"></a>/**
<a name="line375"></a> * A &lt;code&gt;span&lt;/code&gt; tag thats placed before a property name.  Used to style
<a name="line376"></a> * property names with CSS.
<a name="line377"></a> * @type {string}
<a name="line378"></a> * @override
<a name="line379"></a> */
<a name="line380"></a>goog.format.JsonPrettyPrinter.HtmlDelimiters.prototype.preName =
<a name="line381"></a>    &#39;&lt;span class=&quot;&#39; +
<a name="line382"></a>    goog.getCssName(&#39;goog-jsonprettyprinter-propertyname&#39;) +
<a name="line383"></a>    &#39;&quot;&gt;&#39;;
<a name="line384"></a>
<a name="line385"></a>
<a name="line386"></a>/**
<a name="line387"></a> * A closing &lt;code&gt;span&lt;/code&gt; tag that&#39;s placed after a property name.
<a name="line388"></a> * @type {string}
<a name="line389"></a> * @override
<a name="line390"></a> */
<a name="line391"></a>goog.format.JsonPrettyPrinter.HtmlDelimiters.prototype.postName = &#39;&lt;/span&gt;&#39;;
<a name="line392"></a>
<a name="line393"></a>
<a name="line394"></a>/**
<a name="line395"></a> * A &lt;code&gt;span&lt;/code&gt; tag thats placed before a property value.  Used to style
<a name="line396"></a> * property value with CSS.  The span tag&#39;s class is in the format
<a name="line397"></a> * goog-jsonprettyprinter-propertyvalue-{TYPE}, where {TYPE} is the JavaScript
<a name="line398"></a> * type of the object (the {TYPE} parameter is obtained from goog.typeOf).  This
<a name="line399"></a> * can be used to style different value types.
<a name="line400"></a> * @type {string}
<a name="line401"></a> * @override
<a name="line402"></a> */
<a name="line403"></a>goog.format.JsonPrettyPrinter.HtmlDelimiters.prototype.preValue =
<a name="line404"></a>    &#39;&lt;span class=&quot;&#39; +
<a name="line405"></a>    goog.getCssName(&#39;goog-jsonprettyprinter-propertyvalue&#39;) +
<a name="line406"></a>    &#39;-%s&quot;&gt;&#39;;
<a name="line407"></a>
<a name="line408"></a>
<a name="line409"></a>/**
<a name="line410"></a> * A closing &lt;code&gt;span&lt;/code&gt; tag that&#39;s placed after a property value.
<a name="line411"></a> * @type {string}
<a name="line412"></a> * @override
<a name="line413"></a> */
<a name="line414"></a>goog.format.JsonPrettyPrinter.HtmlDelimiters.prototype.postValue = &#39;&lt;/span&gt;&#39;;
</pre>


</body>
</html>
